package schema

// SVBson 特殊来访
type SVBson struct {
	ID                 int64    `bson:"_id"`                 //mongodb:id
	RecordID           string   `bson:"record_id"`           //uuid
	PersonnelName      string   `bson:"personnel_name"`      //来访人员
	ContractTel        string   `bson:"contract_tel"`        //联系电话
	FromEnterprise     string   `bson:"from_enterprise"`     //来访单位
	VisitingEnterprise string   `bson:"visiting_enterprise"` //访问单位
	PersonnelTotal     int      `bson:"personnel_total"`     //来访人员总数
	MainContent        string   `bson:"main_content"`        //来访事由
	StartTime          int64    `bson:"start_time"`          //来访开始时间
	EndTime            int64    `bson:"end_time"`            //来访结束时间
	ParkNodes          []string `bson:"park_nodes"`          //来访的授权区域
	FreezeEntrances    []string `bson:"freeze_entrances"`    //冻结的门禁
	MessageFrequency   int      `bson:"message_frequency"`   //短信发送次数
	Status             int      `bson:"status"`              //状态(1->正常 2->作废)
	Creator            string   `bson:"creator"`             //创建人id
	Created            int64    `bson:"created"`             //创建时间戳
	Deleted            int64    `bson:"deleted"`             //删除时间戳
}

// SVUParams 更新参数
type SVUParams struct {
	PersonnelName      string   `json:"personnel_name"`      //来访人员
	ContractTel        string   `json:"contract_tel"`        //联系电话
	FromEnterprise     string   `json:"from_enterprise"`     //来访单位
	VisitingEnterprise string   `json:"visiting_enterprise"` //访问单位
	PersonnelTotal     int      `json:"personnel_total"`     //来访人员总数
	MainContent        string   `json:"main_content"`        //来访事由
	StartTime          int64    `json:"start_time"`          //来访开始时间
	EndTime            int64    `json:"end_time"`            //来访结束时间
	ParkNodes          []string `json:"park_nodes"`          //来访的授权区域
	FreezeEntrances    []string `json:"freeze_entrances"`    //冻结的门禁
	MessageFrequency   int      `json:"message_frequency"`   //短信发送次数
	Cancel             int64    `json:"cancel"`              //作废时间
	OperateType        int      `json:"operate_type"`        //操作类型
}

// Validate 参数校验方法
func (a *SVUParams) Validate() error {
	return nil
}

// SVCParams 添加创建参数
type SVCParams struct {
	PersonnelName      string   `json:"personnel_name"`      //来访人员
	ContractTel        string   `json:"contract_tel"`        //联系电话
	FromEnterprise     string   `json:"from_enterprise"`     //来访单位
	VisitingEnterprise string   `json:"visiting_enterprise"` //访问单位
	PersonnelTotal     int      `json:"personnel_total"`     //来访人员总数
	MainContent        string   `json:"main_content"`        //来访事由
	StartTime          int64    `json:"start_time"`          //来访开始时间
	EndTime            int64    `json:"end_time"`            //来访结束时间
	ParkNodes          []string `json:"park_nodes"`          //来访的授权区域
	FreezeEntrances    []string `json:"freeze_entrances"`    //冻结的门禁
	MessageFrequency   int      `json:"message_frequency"`   //短信发送次数
}

// Validate 参数校验方法
func (a *SVCParams) Validate() error {
	return nil
}

// SVQParams 列表查询使用参数
type SVQParams struct {
	SVUParams
}
